 /*******************************************************************************
  * Copyright (c) 2000, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.core.internal.utils;

 import java.util.Iterator ;
 import java.util.NoSuchElementException ;

 /**
  * An object that iterates over the elements of an array
  */
 public class ArrayIterator implements Iterator {
     Object [] elements;
     int index;
     int lastElement;

     /**
      * Returns new array enumeration over the given object array
      */
     public ArrayIterator(Object [] elements) {
         this(elements, 0, elements.length - 1);
     }

     /**
      * Returns new array enumeration over the given object array
      */
     public ArrayIterator(Object [] elements, int firstElement, int lastElement) {
         super();
         this.elements = elements;
         index = firstElement;
         this.lastElement = lastElement;
     }

     /**
      * Returns true if this enumeration contains more elements.
      */
     public boolean hasNext() {
         return elements != null && index <= lastElement;
     }

     /**
      * Returns the next element of this enumeration.
      * @exception NoSuchElementException if no more elements exist.
      */
     public Object next() throws NoSuchElementException {
         if (!hasNext())
             throw new NoSuchElementException ();
         return elements[index++];
     }

     public void remove() {
         throw new UnsupportedOperationException ();
     }
 }

